import json

import paramiko
# 传入主机和路径 返回路径内容
def sftpLink(ip,port:int,username,password,rootDir):
    transport = paramiko.Transport((ip,int(port)))
    transport.connect(username=username,password=password)
    sftp = paramiko.SFTPClient.from_transport(transport)

    print("路径：" + rootDir)

    dirlist = sftp.listdir(rootDir)

    newDirList = ["<li class='ftpBack' style='left: 5%;position: relative;color: #FFF;' onclick='backDir(this)'>back</li>","<li class='sftpLinuxRoot'>" + rootDir + "</li>"]

    # 判断是否目录 dr-xr-x---   1 0        0            4096 30 Aug 21:14 ?
    # 一次跑过 我简直就是天才(25个项目需要1秒，有点太慢了 二百个文件要七八九秒 该死 这是ftp连接的问题)
    for list in dirlist:
        listtype = sftp.stat(rootDir + list)
        if listtype.__str__()[0] == 'd':
            newDirList = newDirList + ["<li class='sftpLinuxP' onclick='intoDir(this)'>" + list + "</li>"]
        else:
            newDirList = newDirList + ["<li class='sftpLinuxC' onclick='downFile(this)'>" + list + "</li>"]

    # 连接父目录
    # rootList = [ 'p ' + rootDir ]
    sftp.close()

    return json.dumps(newDirList,ensure_ascii=False)